\section{Related Work}\label{sec:rw}
To our knowledge, ours is the first attempt to incorporate 
rich adaptation/evolvability constructs  into 
a session-typed process language. 
Related to our work are efforts 
on formal models for service-oriented systems
with constructs such as exceptions and compensations (e.g.,~\cite{DBLP:books/sp/sensoria2011/FerreiraLRVZ11,DBLP:conf/concur/CarboneHY08}). 
In our view, such notions represent only a particular instance of adaptation/evolvabilty scenarios. 
That is, while exceptions/compensations are typically conceived for 
handling exceptional, catastrophic events (such as errors), 
in our view, runtime adaptation in modern distributed systems aims at covering more general events, not necessarily catastrophic.
As an example, consider elasticity in cloud-based applications, 
i.e., the ability such applications have to acquire/release computing resources based on user demand.
%depending on user activity, they determine how/when to .
%that in peaks of high activity additional computing resources must be acquired.
Although elasticity triggers 
%Such peaks, while triggering 
system adaptation, % of the system architecture, 
it does not represent a catastrophic event; rather, 
it represents an acceptable (yet hard to predict) state of the system.
Because of this conceptual difference, 
we do not have a clear perspective as to how 
known models of exceptions/compensations can be used to 
express the adaptation capabilities that 
are expressible in
our %session-typed 
framework. % is able to represent.
%\todo{al posto di handle cosa dici qualcosa tipo model o implement?}

As already discussed, % along the paper, 
our approach has been great\-ly influenced by~\cite{DBLP:conf/ppdp/GarraldaCD06,BGPZFMOODS}. 
Nevertheless, 
there are several significant differences between 
our framework and those works. %~\cite{DBLP:conf/ppdp/GarraldaCD06}.
(1)~Unlike the system in~\cite{DBLP:conf/ppdp/GarraldaCD06}, our framework supports channel passing (delegation).
As delegation is already useful to 
represent forms of dynamic reconfiguration, its interplay with update actions is very appealing.
(2)~We have extended typing
judgments in~\cite{DBLP:conf/ppdp/GarraldaCD06} with \emph{interfaces} $\Delta$, which are % of processes.
central to characterize located processes which can be safely updated. 
%with its two zones, $\Delta_l$ and $\Delta_u$. % and by the necessity of distinguishing between linear and unrestricted actions.
%Another distinctive feature of our approach is the treatment in the typing of the restriction operator. 
%In our setting, communication can happen at any level in the hierarchy of adaptable processes; hence, 
%in order to correctly type the number of active sessions (which, as discussed, is central to enable evolvability steps), the information on used session (e.g. $c:\bot$) cannot be hidden.
%Differences with respect to our previous work~\cite{BGPZFMOODS} are also important.
(3)~While in~\cite{BGPZFMOODS} adaptable processes are defined for a %(restriction-free) 
fragment of CCS, 
here we consider them within a typed $\pi$-calculus.
(4)~Adaptation steps in~\cite{BGPZFMOODS} are completely unrestricted. 
%i.e., an update will occur as soon as a located process and an update prefix are able to interact. 
Here we have considered annotated versions of the constructs in~\cite{BGPZFMOODS}:
% Here we have added two elements 
%which serve as a guard for enabling evolvability steps: the number of open sessions in the located processes
%and the interface $\Delta$, present both in the located process and in interacting update processes.
%we think that %our framework enhances the main insights of~\cite{BGPZFMOODS} by 
%they allow to represent evolvable, concurrent systems in a more realistic way, as
%taking the idea of adaptable process to a much more realistic setting, in which 
they offer a more realistic account of update actions, as they are supported 
by runtime conditions based on session types. %d, structured behavior. %determined by the runtime behavior of the system.

\section{Concluding Remarks}\label{sec:conc}
We have proposed a  framework for
%alternative \todo{approach?} for 
%specifying and 
reasoning about \emph{runtime ad\-ap\-ta\-tion} in the context of structured communications.
More precisely, we introduced a session types discipline for an
extended $\pi$-calculus, in which channel mobility is enhanced 
with  update actions on located processes.
Our approach consisted in extending and integrating two existing lines of work, on  
abstractions for evolvability in process calculi~\cite{BGPZFMOODS}
and on
session types for mobile calculi~\cite{DBLP:conf/ppdp/GarraldaCD06}.
We focused on statically ensuring \emph{consistency}, i.e., 
a correct interplay between
session behavior and evolvability steps.

%It is aimed at supporting the analysis of service-oriented applications/systems.

A main motivation for our work is the observation that while 
paradigms such as service-oriented computing are increasingly popular among practitioners, % software architects and programmers,
formal  models  based on them---such
%core programming calculi based on them---such
as reasoning techniques based on session types---fail to capture  
distinctive aspects of such par\-a\-digms.
Here we have aimed at addressing, for the first time, one of such aspects, namely runtime adaptation. 
In our view, it
%Here we have addressed one such aspects, runtime adaptation, 
represents an increasingly important concern when analyzing the behavior of communicating systems in 
%, which is intimately related to the fact that service oriented systemsare increasingly being deployed in very highly 
open, context-aware computing infrastructures.
%Our proposal, we believe, combines the most interesting aspects of these previous works in the context of the unexplored setting of evolvable session-typed processes. 
As future work, we plan to investigate stronger notions of correctness for our adaptable, session-typed processes, in particular deadlock-freedom.
Also, following~\cite{DBLP:journals/acta/GayH05} and the discussion in Sect.\ref{sec:int}, 
we would like to integrate subtyping into our type system,
and to obtain algorithmic characterizations
of notions such as type duality and interface compatibility. \\

% . \\%ways of enabling evolvability steps. \\
%-As future work, we plan to investigate stronger notions of correctness for adaptable, session-typed processes, and 
%to develop a formal treatment of subtyping and interface compatibility, along the discussion in Sect.\ref{sec:int}. \\%ways of enabling evolvability steps. \\



\noindent\textbf{Acknowledgments.~}
We thank 
Ant\'{o}nio Ravara,
Fabrizio Montesi, 
 and
the SAC'13 and PLACES'13 
anonymous reviewers for their useful and detailed remarks. This work was 
partially 
supported by the French projects 
ANR-11-INSE-0007- REVER and
ANR BLAN 0307 01 - SYNBIOTIC, as well as 
by the 
%Funda\c{c}\~{a}o para a Ci\^{e}ncia e a Tecnologia (
Portuguese Foundation for Science and Technology (FCT) %) 
through the Carnegie Mellon Portugal Program (grant
INTERFACES NGN-44 / 2009)
and grants SFRH\;/\;BPD\;/\;84067\;/\;2012
 and CITI.
%We thank the anonymous reviewers for their useful comments.


